<?php
/**
 * チームメンバー追加編集完了画面コンポーネント
 */
require_once 'Request/Request.php';
require_once dirname(__FILE__) . '/../Components.php';
require_once dirname(__FILE__) . '/MemberEdit.php';
require_once dirname(__FILE__) . '/Mapper.php';

class Components_MemberEdit_Submit extends Components
{
	/** @var $_objMapper  データマッパー*/
	protected $_objMapper;
	/** @var $_objRequest リクエストオブジェクト */
	protected $_objRequest;

	/**
	 * コンストラクタ
	 * Enter description here ...
	 * @param unknown_type $sCompileId
	 */
	public function __construct( $sCompileId, $KindSchol)
	{
		parent::__construct(dirname(__FILE__), $sCompileId);

		/*** データマッパインスタンス **/
		$this->_objMapper = new Components_MemberEdit_Mapper($KindSchol);
		/*** リクエストクラスインスタンス **/
		$this->_objRequest = new Lib_Request();

		/***
		 * 投下ボタンＮＡＭＥによる追加編集削除処理振り分け
		 */
		switch ($_REQUEST[Components_MemberEdit::NAME_SUBMITBUTTON]) {
			case Components_MemberEdit::VALUE_SUBMITBUTTON_APPEND:
				$this->_append();
				break;
			case Components_MemberEdit::VALUE_SUBMITBUTTON_UPDATE:
				$this->_update();
				break;
			case Components_MemberEdit::VALUE_SUBMITBUTTON_DELETE:
				$this->_delete();
				break;
		}
	}

	/**
	 * メンバーデータ変更
	 * Enter description here ...
	 */
	protected function _update()
	{
		$bResult = $this->_objMapper->update();
		if ( $bResult === FALSE ) {
			return FALSE;
		}
		$this->_objMapper->saveToFile();
		return TRUE;
	}

	/**
	 * メンバー削除
	 * Enter description here ...
	 */
	protected function _delete()
	{
		$bResult = $this->_objMapper->delete();
		if ( $bResult === FALSE ) {
			return FALSE;
		}
		$this->_objMapper->saveToFile();
		return TRUE;
	}

	/**
	 * メンバー追加
	 * Enter description here ...
	 */
	protected function _append()
	{
		/***
		 * メンバー追加
		 */
		$bResult = $this->_objMapper->add();
		if ( $bResult === FALSE ) {
			return FALSE;
		}
		$this->_objMapper->saveToFile();
		return TRUE;
	}
}